package com.anabur.persistent;

import java.io.Serializable;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;

import com.anabur.system.AafAbstractPersistent;

/**
 * Entity que representa a una empresa.
 *  
 * @author ppasquali
 *
 */
@Entity
@Table(uniqueConstraints = @UniqueConstraint(columnNames = "CODIGO"))
public class Empresa extends AafAbstractPersistent implements Serializable{

	private static final long serialVersionUID = 1L;
	private String codigo;
	private String nombre;
	private Rubro rubro;
	private Boolean esMerval;
	private Boolean esMerval25;
	
	public Empresa(){
		super();
	}

	public Empresa(String codigo, String nombre, Rubro rubro, Boolean esMerval, Boolean esMerval25) {
		super();
		this.codigo = codigo;
		this.nombre = nombre;
		this.rubro = rubro;
		this.esMerval = esMerval;
		this.esMerval25 = esMerval25;
	}

	private List<Cotizacion> cotizaciones;
	private List<Balance> balances;
	
	@OneToMany(mappedBy="empresa")
	public List<Balance> getBalances() {
		return balances;
	}
	
	public void setBalances(List<Balance> balances) {
		this.balances = balances;
	}
	
	@ManyToOne
	public Rubro getRubro() {
		return rubro;
	}
	
	public void setRubro(Rubro rubro) {
		this.rubro = rubro;
	}
	
	@Column(nullable = false)
	public String getNombre() {
		return nombre;
	}
	
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	
	@OneToMany(mappedBy="empresa")
	public List<Cotizacion> getCotizaciones() {
		return cotizaciones;
	}
	
	public void setCotizaciones(List<Cotizacion> cotizaciones) {
		this.cotizaciones = cotizaciones;
	}
	
	@Column(nullable = false)
	public String getCodigo() {
		return codigo;
	}
	
	public void setCodigo(String codigo) {
		this.codigo = codigo;
	}
	
	@Column(nullable = false)
	public Boolean getEsMerval() {
		return esMerval;
	}

	public void setEsMerval(Boolean esMerval) {
		this.esMerval = esMerval;
	}

	@Column(nullable = false)
	public Boolean getEsMerval25() {
		return esMerval25;
	}

	public void setEsMerval25(Boolean esMerval25) {
		this.esMerval25 = esMerval25;
	}
	
}
